/*
 * Lynket
 *
 * Copyright (C) 2019 Arunkumar
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package arun.com.chromer.shared.base.service;

import android.app.Service;

import arun.com.chromer.Chromer;
import arun.com.chromer.di.service.ServiceComponent;
import arun.com.chromer.di.service.ServiceModule;

/**
 * Created by arunk on 27-11-2017.
 */

public abstract class BaseService extends Service {

  private ServiceComponent serviceComponent;

  @Override
  public void onCreate() {
    super.onCreate();
    serviceComponent = ((Chromer) getApplication())
        .getAppComponent()
        .newServiceComponent(new ServiceModule(this));
    inject(serviceComponent);
  }

  protected abstract void inject(ServiceComponent serviceComponent);

  @Override
  public void onDestroy() {
    super.onDestroy();
    serviceComponent = null;
  }
}
